In a technique of video coding and decoding, a motion-compensated interpolation for each block is generally executed. An image signal to be referred is stored in an external memory; therefore, when the video coding and decoding is implemented by hardware, there might be constraints on the amount of read data. Accordingly, when an amount of access to the memory increases, a so-called memory bandwidth, which is a bottleneck in the coding and decoding operations, becomes a problem.
In the motion-compensated interpolation for each block, an interpolation filtering process using FIR (Finite Impulse Response) filter in the horizontal direction and in the vertical direction is executed. In the interpolation filtering process, a pixel outside the block has to be accessed. When the number of pixels outside the block increases, the memory bandwidth per pixel also increases.
Conventionally, the memory bandwidth per pixel has been reduced by applying an interpolation filter with a short tap length to a block with a small size by which the ratio of the accessed pixels outside the block relatively increases.
However, in the conventional art, the memory bandwidth cannot appropriately be reduced. For example, in the case of the chroma format, such as 4:2:0 or 4:2:2, in which the number of samples of the pixel for a color difference (color difference component) is smaller than the number of samples of the pixel for luminance (luminance component), and the resolution is low, the interpolation has to be executed in such a manner that the color difference is enlarged more with the luminance being defined as a reference. Therefore, when the filter with taps longer than two taps is used for the interpolation for the color difference, the process for the color difference signal cannot be restricted, even if the process is changed per luminance block.